#/bin/bash

APPNAME=$1
REQUIRED_MAJOR=$2
REQUIRED_MINOR=$3
REQUIRED_POINT=0
if [ $# -gt 3 ]; then
	REQUIRED_POINT=$4
fi

VERSION_TITLE="Cannot launch $APPNAME"
VERSION_NAME=$REQUIRED_MAJOR.$REQUIRED_MINOR
if [ "x" != "x$REQUIRED_POINT" ]; then
	VERSION_NAME=$VERSION_NAME.$REQUIRED_POINT
fi
VERSION_MSG="$APPNAME requires the Mono Framework version $VERSION_NAME or later."
DOWNLOAD_URL="http://www.go-mono.com/mono-downloads/download.html"

MONO_VERSION="$(mono --version | grep 'Mono JIT compiler version ' |  cut -f5 -d\ )"
MONO_VERSION_MAJOR="$(echo $MONO_VERSION | cut -f1 -d.)"
MONO_VERSION_MINOR="$(echo $MONO_VERSION | cut -f2 -d.)"
MONO_VERSION_POINT="$(echo $MONO_VERSION | cut -f3 -d.)"
if [ -z "$MONO_VERSION_POINT" ]; then MONO_VERSION_POINT=0; fi
if [ -z "$MONO_VERSION" ] \
	|| [ $MONO_VERSION_MAJOR -lt $REQUIRED_MAJOR ] \
	|| [ $MONO_VERSION_MAJOR -eq $REQUIRED_MAJOR -a $MONO_VERSION_MINOR -lt $REQUIRED_MINOR ] \
	|| [ $MONO_VERSION_MAJOR -eq $REQUIRED_MAJOR -a $MONO_VERSION_MINOR -eq $REQUIRED_MINOR \
		-a $REQUIRED_POINT -gt 0 -a $MONO_VERSION_POINT -lt $REQUIRED_POINT ] 
then
	osascript \
	-e "set question to display dialog \"$VERSION_MSG\" with title \"$VERSION_TITLE\" buttons {\"Cancel\", \"Download...\"} default button 2" \
	-e "if button returned of question is equal to \"Download...\" then open location \"$DOWNLOAD_URL\""
	echo "$VERSION_TITLE"
	echo "$VERSION_MSG"
	exit 1
fi
